package com.star.security.user;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

/**
 * 用户详细信息
 *
 * @author yangzj
 */
public interface UserDetails extends Serializable {

    /**
     * 获取用户id
     *
     * @return {@link Long}
     */
    Long getId();

    /**
     * 获取用户名
     *
     * @return {@link String}
     */
    String getUsername();

    /**
     * 获取密码
     *
     * @return {@link String}
     */
    String getPassword();

    /**
     * 获取角色
     *
     * @return {@link String}
     */
    Set<String> getRoles();

    /**
     * 获取权限标识
     *
     * @return {@link List}<{@link String}>
     */
    Set<String> getAuthorities();

    /**
     * 是否启用
     *
     * @return boolean
     */
    boolean isEnabled();

    /**
     * 是否超级管理员
     *
     * @return boolean
     */
    boolean isSuperAdmin();
}
